home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-07-29 | 6.7 KB | 218 lines |
- 1 'BIGNUM3.BAS 09/05/83 FOR IBM PC FROM CP/M PUBLIC DOMAIN
- 6 GOTO 50
- 7 SAVE "BIGNUM3.BAS",A:STOP
- 50 CLS
- 60 PRINT TAB(20)" B I G N U M B E R S G A M E"
- 70 PRINT: PRINT "Please Enter A 4-digit ";:RANDOMIZE
- 80 PRINT
- 100 CLEAR 500
- 200 DIM W$(101),W1$(10),W2$(10),W3$(8),W4$(34),W5$(21),W6$(36),W7$(74)
- 300 FOR LL=1 TO 10:READ W1$(LL):NEXT LL
- 400 FOR II=1 TO 10:READ W2$(II):NEXT II
- 500 FOR OO=1 TO 8:READ W3$(OO):NEXT OO
- 600 FOR QQ=1 TO 34:READ W4$(QQ):NEXT QQ
- 700 FOR EE=1 TO 21:READ W5$(EE):NEXT EE
- 800 FOR GG=1 TO 36:READ W6$(GG):NEXT GG
- 900 FOR UU=1 TO 74:READ W7$(UU):NEXT UU
- 1000 ' FROM OCT CREATIVE COMPUTING BY JERRY CRAVEA
- 1100 ' MADE TO RUN ON CP/M 2.2 MBASIC BY T MCCORMICK 05/82
- 1200 DATA "ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN"
- 1300 DATA "EIGHT","NINE"
- 1400 DATA "TEN","ELEVEN","TWELVE","THIRTEEN","FOURTEEN","FIFTEEN"
- 1500 DATA "SIXTEEN","SEVENTEEN","EIGHTEEN","NINTEEN"
- 1600 IF D$="0" THEN 8800
- 1700 DATA "TWENTY ","THIRTY ","FOURTY ","FIFTY ","SIXTY ","SEVENTY "
- 1800 DATA "EIGHTY ","NINETY "
- 1900 DATA "HUNDRED","THOUSAND","MILLION","BILLION","TRILLION","QUADRILLION"
- 2000 DATA "QUINTILLION","SEXTILLION","SEPTILLION","OCTILLION","NONILLION"
- 2100 DATA "DECILLION","UNDECILLION","DUODECILLION","TREDECILLION"
- 2200 DATA "QUATTUORDECILLION","QUINDECILLION","SEXDECILLION"
- 2300 DATA "SEPTENDECILLION","OCTODECILLION","NOVEMDECILLION","VIGINTILLION"
- 2400 DATA "VIGINTIUNTILLION","VIGINTIDUOTILLION","VIGINTITRETILLION"
- 2500 DATA "VIGINTIQUATTOURTILLION","VIGINTIQUINTILLION","VIGINTISEXTILLION"
- 2600 DATA "VIGINTISEPTILLION","VIGINTIOCTILLION","VIGINTINONILLION"
- 2700 DATA "TRIGINTATILLION","TRIGINTAUNTILLION","TRIGINTADUOTILLION"
- 2800 DATA "FIRST","SECOND","THIRD","FOURTH","FIFTH","SIXTH","SEVENTH"
- 2900 DATA "EIGHTH","NINTH","TENTH","ELEVENTH","TWELFTH","THRITEENTH"
- 3000 DATA "FOURTEENTH","FIFTEENTH","SIXTEENTH","SEVENTEENTH","EIGHTEENTH"
- 3100 DATA "NINTEENTH","TWENTIETH","NEXT "
- 3200 C=0
- 3300 I=0
- 3400 PRINT
- 3500 PRINT "HI THERE! MY NAME IS BIG NUMBERS, WHAT IS YOUR NAME";
- 3600 INPUT A1$
- 3700 J=LEN(A1$)
- 3800 IF J<=25 THEN 4900
- 3900 IF I<>0 THEN 4700
- 4000 PRINT
- 4100 PRINT "SORRY "; A1$; ","
- 4200 PRINT "BUT I GET TIRED EASILY SAYING LONG NAMES."
- 4300 PRINT "LONG NUMBERS ARE MY THING, YOU KNOW"
- 4400 PRINT "PLEASE RETYPE YOUR NAME NOW AND LIMIT TO 25 SPACES OR LESS"
- 4500 I=1
- 4600 GOTO 3600
- 4700 A1$=MID$(A1$,1,25)
- 4800 GOTO 5100
- 4900 IF I=0 THEN 5100
- 5000 PRINT "WHEW, THANK YOU "; A1$; "! THATS MUCH BETTER."
- 5100 PRINT
- 5200 PRINT "NOW "; A1$; ",DO YOU WANT SOME INSTRUCTIONS"
- 5300 PRINT "ON WHAT TO DO (YES/NO)";
- 5400 INPUT A$
- 5500 IF MID$(A$,1,1)="N" THEN 6500
- 5600 IF MID$(A$,1,1)<>"Y" THEN 5200
- 5700 PRINT
- 5800 PRINT "I CAN TEACH YOU HOW TO SAY BIG NUMBERS, "; A1$; "."
- 5900 PRINT "TYPE IN ANY POSITIVE WHOLE NUMBER AND I WILL PRINT THE WORDS"
- 6000 PRINT "TO USE TO SAY THAT NUMBER IN ENGLISH YOU MAY USE COMMAS TO"
- 6100 PRINT "SEPARATE GROUPS OF THREE DIGITS IF YOU WISH BUT YOU DONT HAVE"
- 6200 PRINT "TO FOR EXAMPLE, 1093 & 1,093 ARE THE SAME NUMBER TO ME"
- 6300 PRINT "ONLY THE 10 DIGITS (0-9) AND COMMAS ARE ALLOWED IN THE"
- 6400 PRINT "NUMBERS YOU TYPE IN. WHEN YOU WISH TO STOP, TYPE END OR QUIT"
- 6500 PRINT
- 6600 C=C+1
- 6700 IF C<=21 THEN 6900
- 6800 C=21
- 6900 PRINT " OK, "; A1$; ". ENTER YOUR "; W5$(C); " NUMBER NOW"
- 7000 INPUT I$
- 7100 IF MID$(I$,1,3)="END" THEN 21000
- 7200 IF MID$(I$,1,4)="QUIT" THEN 21000
- 7300 L=LEN(I$)
- 7400 N=0
- 7500 G=0
- 7600 Z=1
- 7700 FOR J = 1 TO L
- 7800 D$=MID$(I$,J,1)
- 7900 IF D$="," THEN 8800
- 8000 IF D$=" " THEN 8800
- 8100 IF D$< "0" OR D$> "9" THEN 9900
- 8200 ON Z GOTO 8300,8500
- 8300 IF D$="0" THEN 8800
- 8400 Z=2
- 8500 N=N+1
- 8600 IF N>101 THEN 17600
- 8700 W$(N)=D$
- 8800 NEXT J
- 8900 IF N>0 GOTO 9200
- 9000 N=1
- 9100 W$(N)="0"
- 9200 IF N<>101 THEN 10300
- 9300 IF W$(1)<>"1" THEN 17600
- 9400 FOR J = 2 TO N
- 9500 IF W$(J)<>"0" THEN 17600
- 9600 NEXT J
- 9700 G=1
- 9800 GOTO 10300
- 9900 PRINT "SORRY BUT THE NUMBER YOU ENTER MUST CONTAIN ONLY"
- 10000 PRINT "DIGITS (0-9) AND COMMAS - NO OTHER CHARACTERS"
- 10100 PRINT "PLEASE REENTER YOUR "; W5$(C); " NUMBER CORRECTLY NOW"
- 10200 GOTO 7000
- 10300 IF N<=9 THEN 10700
- 10400 I=INT((RND(0)*36)+1)
- 10500 J=INT((RND(0)*74)+1)
- 10600 PRINT W6$(I); " "; A1$; ", THAT WAS "; W7$(J); " NUMBER"
- 10700 N1=INT((N+2)/3)
- 10800 N2=((N1*3)+1)-N
- 10900 PRINT "THE NUMBER ";
- 11000 J=11
- 11100 ON N2 GOTO 11600,11400,11200
- 11200 PRINT " ";
- 11300 J=J+1
- 11400 PRINT " ";
- 11500 J=J+1
- 11600 FOR I = 1 TO N
- 11700 ON N2 GOTO 11800,11800,11800,12000
- 11800 PRINT W$(I);
- 11900 GOTO 12100
- 12000 PRINT ",";
- 12100 J=J+1
- 12200 N2=N2+1
- 12300 IF N2<=4 THEN 12500
- 12400 N2=1
- 12500 IF J<=78 THEN 13000
- 12600 PRINT
- 12700 PRINT TAB(11);
- 12800 J=11
- 12900 GOTO 11800
- 13000 IF N2=1 THEN 11800
- 13100 NEXT I
- 13200 PRINT
- 13300 PRINT TAB(5); "IS SPOKEN IN ENGLISH AS: "
- 13400 IF G=0 THEN 13800
- 13500 PRINT "TAB(11); "ONE GOOGOL"
- 13600 G=0
- 13700 GOTO 6500
- 13800 N2=((N1*3)+1)-N
- 13900 PRINT TAB(11);
- 14000 F1=1
- 14100 F2=0
- 14200 FOR I = 1 TO N
- 14300 D=VAL(W$(I))
- 14400 ON N2 GOTO 14500,15000,15600
- 14500 F2=F2+D
- 14600 IF D=0 THEN 17000
- 14700 PRINT W1$(D+1);:PRINT " ";
- 14800 PRINT W4$(1);:PRINT " ";
- 14900 GOTO 17000
- 15000 F2=F2+D
- 15100 ON D+1 GOTO 17000,15200,15400,15400,15400,15400,15400,15400,15400,15400
- 15200 F1=2
- 15300 GOTO 17000
- 15400 PRINT W3$(D-1) ;
- 15500 GOTO 17000
- 15600 F2=F2+D
- 15700 ON F1 GOTO 15800,16300
- 15800 IF N=1 THEN 16100
- 15900 IF F2=0 THEN 16700
- 16000 IF D=0 THEN 16400
- 16100 PRINT W1$(D+1);:PRINT " ";
- 16200 GOTO 16400
- 16300 PRINT W2$(D+1) ;:PRINT " ";
- 16400 IF N1<=1 THEN 17000
- 16500 PRINT W4$(N1)
- 16600 PRINT TAB(11) ;
- 16700 N1=N1-1
- 16800 F1=1
- 16900 F2=0
- 17000 N2=N2+1
- 17100 IF N2<>4 THEN 17300
- 17200 N2=1
- 17300 NEXT I
- 17400 PRINT
- 17500 GOTO 6500
- 17600 PRINT
- 17700 PRINT "WELL "; A1$; " THAT NUMBER IS BIGGER THAN A GOOGOL(1FOLLOWED"
- 17800 PRINT "BY 100 ZEROS). BEFORE I TELL YOU HOW TO SAY IT, YOU MUST"
- 17900 PRINT "FIRST SHOW YOURSELF WORTHY. TAKE A PENCIL AND SOME PAPER"
- 18000 PRINT "AND WRITE DOWN ALL THE DIGITS IN A GOOGOLPLEX. A GOOGOLPLEX"
- 18100 PRINT "IS 1 FOLLOWED BY A GOOGOL NUMBER OF ZEROS WHEN YOU HAVE"
- 18200 PRINT "WRITTEN ALL THE DIGITS IN A GOOGOLPLEX DOWN ON PAPER COME"
- 18300 PRINT "AND TYPE THEM IN FOR ME AND THEN I WILL KNOW YOU ARE"
- 18400 PRINT "WORTHY TO SPEAK NUMBERS LARGER THAN A GOOGOL"
- 18500 PRINT "GOOD BYE FOR NOW"
- 18600 DATA "AHA","BINGO","BOY","BOY OH BOY","BRAVO","EUREKA","GAD ZOOKS"
- 18700 DATA "GOLLY","GOSH","HEY","HEY THERE","HO HO","HOORAY","MAMA MIA","MAN"
- 18800 DATA "OH BOY","OH HO HO HO","OH ME","OH ME OH MY","OH MY","OHO","OH WOW"
- 18900 DATA "OK","O SOL O MI O","RIGHT ON","WHOOPIE","WILD","WOW","YE GADS"
- 19000 DATA "YES","YIKES","YIPES","YOW","YOWIE","ZINGO","ZOWIE"
- 19100 DATA "AN AMPLE","AN AUGUST","A BIG","A BRAWNY","A CAPACIOUS"
- 19200 DATA "A COMPREHENSIVE","A COLOSSAL","AN ELEPHANTE","AN ENORMOUS"
- 19300 DATA "AN EXTENSIVE","A GIGANTIC","A GORGEOUS","A GRAND","A GREAT"
- 19400 DATA "A HUGE","A HUMONGOUS","AN IMMENSE","A LARGE","A MAGNANIMOUS"
- 19500 DATA "A MAJESTIC","A MASSIVE","A MIGHTY","A MONSTROUS","A MUSCULAR"
- 19600 DATA "AN OSTENTATIOUS","A POMPOUS","A POWERFUL","A PRINCELY"
- 19700 DATA "A PRODIGIOUS","A REGAL","A SIGNIF ICANT","A SOPHISTICATED"
- 19800 DATA "A SPACIOUS","A SPLENDID","A STUPENDOUS","A SUPERB","A VAST","A WIDE"
- 19900 DATA "NOT YOUR AVERAGE","NOT YOUR COMMON","NOT YOUR COMMANPLACE","
- 20000 DATA "NOT A CRAMPED","NOT A DWARF OF A","NOT A ELEMENTARY"
- 20100 DATA "NOT YOUR EVERDAY","NOT A FEEBLE","NOT A FLIMSY","NOT A HUMBLE"
- 20200 DATA "NOT A HUMDRUM","NOT A INCHOATE","NOT AN INSIGNIF ICENT"
- 20300 DATA "NOT A LITTLE","NOT A MEAGER","NOT A MEEK"
- 20400 DATA "NOT A MERE WISP OF A","NOT A MINUTE","NOT A MODEST"
- 20500 DATA "NOT A OBSCURE","NOT YOUR ORDINARY","NOT A PALTRY"
- 20600 DATA "NOT A PETTY","NOT A PIGMY OF A","NOT A PUERILE","NOT A PUNY"
- 20700 DATA "NOT A SCANTY","NOT TO SHABBY OF A","NOT A SHALLOW"
- 20800 DATA "NOT A SIMPLE","NOT A SMALL","NOT A TINY","NOT A TRIF LING"
- 20900 DATA "NOT A TRIVIAL","NOT A UNDERSIZED","NOT AN UNNOTICEABLE"
- 21000 END
-